/**
 * 1）类、类型得区别
 * Java 中 List<String> List<Integer> 都是 List 类，但是他们得类型不一样，因为泛型得原因
 * classOf[A] 获得得是A得类型 A.class
 * typeOf[A] 获得得是A得type
 *
 */

object ClassApp01 extends App {
  //引入反射类型转换
  import scala.reflect.runtime.universe._
  class A
  typeOf[A]
  // res2: reflect.runtime.universe.Type = A

  classOf[A]
  // res3: Class[A] = class A

  val a = new A
  //res5: Class[_ <: A] = class A

  val c1 = a.getClass
  //res8:  Class[_ <: A] = class A

  println(classOf[A] == c1) // true



  trait T

  classOf[T]
  //  res6: Class[T] = interface T

  typeOf[T]
  //  res7: reflect.runtime.universe.Type = T




}